import { defineConfig, loadEnv } from 'vite'
import { plugins, define } from './build'
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig(({ mode, command }) => {
  const env = loadEnv(mode, process.cwd())
  const { VITE_APP_BASE_PATH } = env
  return {
    plugins,
    // 配置 url 前缀
    // base: '/xxx',
    base: VITE_APP_BASE_PATH,
    resolve: {
      alias: {
        '@': path.resolve(__dirname, 'src'),
        fab: path.resolve(__dirname, 'src', 'plugin', 'htPlugin', 'fab'),
      },
    },
    server: {
      open: false, // 是否默认打开浏览器
      port: 5180, // 指定开启的端口号，如果冲突则再此基础上递增查找空闲端口号
      host: '0.0.0.0',
    },
    build: {
      rollupOptions: {
        input: {
          main: path.resolve(__dirname, 'index.html'),
          // 页面访问地址类似 192.168.0.123:8765/demo/windicss.html
          windicssDemo: path.resolve(__dirname, 'demo/windicss.html'),
          naiveuiDemo: path.resolve(__dirname, 'demo/naiveui.html'),
        },
      },
      // 打包出来的 chunk 过大(为621kB，超过阈值500kB)，先增大 chunk size 的阈值，避免报警
      chunkSizeWarningLimit: 1024,
      // 如果还告警，尝试分开打包(注意: 有时候分开打包还可能产生一个更大的 chunk)
      // rollupOptions: {
      //   output: {
      //     manualChunks(id) {
      //       if (id.includes('node_modules')) {
      //         return id.toString().split('node_modules/')[1].split('/')[0].toString()
      //       }
      //     },
      //   },
      // },
    },
    define,
    css: {
      preprocessorOptions: {
        scss: {
          // 全局引入
          additionalData: `@import "@/styles/sass/globalVar.sass";`,
        },
      },
    },
  }
})
